アプリに追加でプラグインと依存関係を管理する
このガイドでは、プロジェクトを設定して使用する方法について説明します。 プラグインと Gradle ライブラリの依存関係を管理する方法 既存の Android アプリと Flutter モジュールのプラグインの間で。
A. 単純なシナリオ
単純な場合:
- Flutter モジュールは、追加の機能を持たないプラグインを使用しています。 Android OSのみを使用するため、Android Gradleに依存します。 カメラプラグインなどの API。
- Flutter モジュールは Android を備えたプラグインを使用しています Gradle の依存関係などvideo_player プラグインの ExoPlayer、 しかし、既存の Android アプリは ExoPlayer に依存していませんでした。
追加の手順は必要ありません。あなたの追加アプリ モジュールは完全な Flutter アプリと同じように動作します。 Android Studio を使用して統合するかどうか、 Gradle サブプロジェクトまたは AAR、 推移的な Android Gradle ライブラリは自動的に 必要に応じて、外側の既存のアプリにバンドルされます。
B. プロジェクトの編集が必要なプラグイン
一部のプラグインでは、 プロジェクトの Android 側。
たとえば、firebase_crashlyticsプラグインにはマニュアルが必要です
Android ラッパープロジェクトの編集build.gradle
ファイル。
完全な Flutter アプリの場合、これらの編集は
flutterプロジェクトの/android/
ディレクトリ。
Flutterモジュールの場合はDartのみ モジュールプロジェクト内のファイル。これらの Android を実行します 外側の既存の Android で Gradle ファイルを編集する Flutter モジュールではなくアプリ。
C. ライブラリのマージ
もう少し注意が必要なシナリオは次のような場合です。 既存の Android アプリケーションはすでに Flutter モジュールと同じ Android ライブラリ 実行します (プラグインを介して推移的に)。
たとえば、既存のアプリの Gradle には以下がすでに含まれている可能性があります。
…
dependencies {
…
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
…
}
…
そして、Flutter モジュールも依存しますfirebase_crashlytics経由pubspec.yaml
:
…
dependencies:
…
firebase_crashlytics: ^0.1.3
…
…
このプラグインの使用法により、推移的に Gradle 依存関係が再度追加されます。 firebase_crashlytics v0.1.3 独自のグラドルファイル:
…
dependencies {
…
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
…
}
…
二つcom.crashlytics.sdk.android:crashlytics
依存関係
同じバージョンではない可能性があります。この例では、
ホスト アプリは v2.10.1 と Flutter をリクエストしました
モジュール プラグインは v2.9.9 を要求しました。
デフォルトでは、Gradle v5依存関係のバージョンの競合を解決します最新バージョンのライブラリを使用します。
API がない限り、これは通常は問題ありません またはバージョン間の実装の破壊的な変更。 たとえば、新しい Crashlytics ライブラリを使用できます。 既存のアプリでは次のようになります。
…
dependencies {
…
implementation 'com.google.firebase:firebase-crashlytics:17.0.0-beta03
…
}
…
API に大きな違いがあるため、このアプローチは機能しません Crashlytics の Gradle ライブラリのバージョン間 v17.0.0-beta03 および v2.9.9。
セマンティック バージョニングに従う Gradle ライブラリの場合、 通常はコンパイルエラーや実行時エラーを回避できます 同じメジャー セマンティック バージョンを使用することにより、 既存のアプリと Flutter モジュール プラグイン。